/**
 * Axios封装
 * */
import axios from 'axios';
import {ElMessage} from "element-plus";

const request = axios.create({
	// baseURL: '/api',
	timeout: 10000,
	headers: {
		'X-Requested-With': 'XMLHttpRequest',
		'Content-Type': 'application/json;charset=UTF-8'
	}
})

// 请求拦截器
request.interceptors.request.use(
	config => {
		return config;
	},
	error => {
		return Promise.error(error);
	}
)

// 响应拦截器
request.interceptors.response.use(
	response => {
		if (response.status === 200) {
			return Promise.resolve(response.data);
		} else {
			return Promise.reject(response);
		}
	},
	// 服务器状态码不是200的情况
	error => {
		if (error.response.status) {
			switch (error.response.status) {
				// 401: 未登录
				case 401:
					ElMessage.warning('401 登录已过期，请重新登录');
					break;
				// 403 token过期
				case 403:
					ElMessage.warning('403 登录已过期，请重新登录');
					break;
				// 404请求不存在
				case 404:
					ElMessage.warning('404 网络请求资源不存在');
					break;
				// 其他错误，直接抛出错误提示
				default:
					ElMessage.warning(error.response.data.message);
			}
			return Promise.reject(error.response);
		}
	}
);

export default request;